package com.derbysoft.synxisadapter.commons.repository;

import com.derbysoft.core.Limit;
import com.derbysoft.core.LimitedList;
import com.derbysoft.synxisadapter.commons.model.Channel;
import com.derbysoft.synxisadapter.commons.model.TaxPolicy;
import com.derbysoft.synxisadapter.commons.repository.impl.ChannelCondition;

public interface ChannelRepository {
    Channel findByPassport(String passport);

    Channel findByCode(String channelCode);

    LimitedList<Channel> findByCondition(ChannelCondition condition, Limit limit);

    void update(String passport, String name, String id, String code, String iataNumber, String userName, String password,TaxPolicy taxPolicy, boolean inclusiveTaxRate);

    void create(String passport, String name, String id, String code, String iataNumber, String userName, String password, TaxPolicy taxPolicy, boolean inclusiveTaxRate);

    void save(Channel channel);

    void delete(Channel channel);
}
